﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using GAIA_Logica;
using System.ComponentModel;
using System.Data;

namespace GAIA_IU
{
    public partial class act_especies : System.Web.UI.Page
    {
        private List<Especies> listaEspecies = new List<Especies>();
        private Especies especie = new Especies();


        protected void Page_Load(object sender, EventArgs e)
        {

            bool login = Session["login"] != null ? Boolean.Parse(Session["login"].ToString()) : false;

            if (login)
            {

                if (IsPostBack)
                {

                }
                else
                {
                    /* listaEspecies = especie.getListaEspecies();
                     cargarDatos();*/
                }
            }
            else {

                Response.Redirect("Login.aspx");
            }

        }
                


        protected void btn_busqueda_Click(object sender, EventArgs e)
        {
            Especies especiesObj=new Especies();

            try
            {
                int codigo=0; 
                string nombre="";

                if (txt_cod.Text.Length > 0)
                {
                    codigo = int.Parse(txt_cod.Text);
                }

                if (txt_nombre.Text.Length > 0)
                {
                    nombre = txt_nombre.Text;
                }

                listaEspecies=especiesObj.buscarEspecies(codigo, nombre);
                cargarDatos();
            }
            catch (Exception ex) {
                Avisar("Error al buscar la especie. Por favor intente nuevamente. (" + ex.Message + ")", false);
            }
        }


        protected void Avisar(string aviso, bool resultado)
        {
            this.aviso_label.Text = aviso;
            if (resultado)
            {
                this.aviso_label.CssClass = "_true";
            }
            else
            {
                this.aviso_label.CssClass = "_false";
            }

        }

        protected void ClearForm()
        {

            txt_codigo.Text = "";
            txt_nomCien.Text = "";
            txtPopular.Text = "";

        }

        protected void cargarDatos(){

           GridView_especies.DataSource = listaEspecies;
           GridView_especies.DataBind();
           Session["ListaDeEspecies"] = listaEspecies;
        }

        protected void gridView_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            GridView_especies.DataSource = (List<Especies>)Session["ListaDeEspecies"];
            GridView_especies.PageIndex = e.NewPageIndex;
            GridView_especies.DataBind();
        }

      

        protected void btn_actualizar_Click(object sender, EventArgs e)
        {
            int id = int.Parse(txt_codigo.Text);
            string nombreCien = txt_nomCien.Text;
            string nombrePop = txtPopular.Text;
            int formula = formulas.SelectedIndex+1;


            try
            {
                especie = new Especies();
                especie.Id = id;
                especie.NomCien = nombreCien;
                especie.NomPop = nombrePop;
                especie.NumFormula=formula;

                especie.actulizarEspecie(int.Parse(GridView_especies.SelectedDataKey.Values["Id"]+""));

                ClearForm();
                Avisar("La especie ha sido actualizada con éxito", true);

            }
            catch (Exception ex)
            {
                Avisar("Error al intentar actualizar la especie " + id + ". Por favor intente nuevamente :(" + ex.Message + ")", false);
            }
        }

        protected void GridView_especies_SelectedIndexChanged(object sender, EventArgs e)
        {
            txt_codigo.Text =GridView_especies.SelectedDataKey.Values["Id"]+"";
            txt_nomCien.Text = (String)GridView_especies.SelectedDataKey.Values["NomCien"];
            txtPopular.Text = (String)GridView_especies.SelectedDataKey.Values["NomPop"];
            formulas.SelectedIndex = int.Parse(GridView_especies.SelectedDataKey.Values["NumFormula"]+"")-1;
        }
    }
}